Effective emission control of internal combustion engine exhaust gases with a catalytic converter requires precise control of the air/fuel ratio supplied to the engine cylinders. For this purpose, it is customary to install an oxygen sensor in the engine exhaust pipe, and to use the sensor output as a feedback signal for closed-loop fuel control. Typically, the exhaust gases of several engine cylinders are combined in an exhaust manifold with a single oxygen sensor positioned near the outlet, and an average reading of the oxygen sensor is used as a common feedback signal for controlling the fuel supplied to the several cylinders. This approach assumes a uniform air and fuel distribution among the several cylinders. However, there are frequently significant variations in air and fuel distribution among different cylinders, due to manufacturing tolerances (e.g., intake ports and fuel injectors), pressure resonance oscillations (intake manifold and fuel rail), and inhomogeneous EGR distribution. These variations cause the actual air/fuel ratio to significantly depart from the target air/fuel ratio, which tends to degenerate emission control, limit high dilution (lean burn) engine operation, deteriorate fuel economy, and possibly cause misfires.
For this reason, it has been proposed to individually trim the fuel pulse width for each engine cylinder; see, for example, the U.S. Pat. No. 5,651,353, issued on Jul. 29, 1997, and U.S. Pat. No. 5,732,689, issued on Mar. 31, 1998. Some systems of this type utilize multiple oxygen sensors for developing air/fuel ratio feedback signals unique to each cylinder. Other systems use only a single oxygen sensor for reduced cost, and utilize a mathematical model or observer to correlate the sensor readings with a given cylinder.
The model-based approach involves two basic steps: (1) recovering the cylinder imbalance pattern from the single oxygen sensor signal, and (2) mapping the recovered imbalance pattern to individual engine cylinders for purposes of trimming the individual fuel pulse widths. The first step typically involves a model-based observer which captures the dynamics of both the engine and the oxygen sensor. In a strictly time-based domain, there exist two essentially different modeling practices yielding a device to recover the cylinder imbalances from the raw oxygen sensor signal. One practice is based on transforming the rotational dynamics of the engine into a non-periodic representation using a "lifting technique". As a result of this transformation, the imbalances pertaining to the N different cylinders are represented by one particular observer state variable, each. Thus, the entire set of state variables captures the entire imbalance pattern over one engine cycle in a time-invariant fashion. The engine can then be balanced through individually feeding each of the recovered imbalances back to the corresponding cylinder. For each cylinder, an individual feed-back loop is thus required. Alternatively, according to the second practice, the periodicity of the engine may be preserved in terms of a periodic observer in which the cylinder imbalances are shifted in a cyclic manner through the entire set of state variables. Thus, at each instant of time, the entire imbalance pattern over one full engine cycle, as generated in accordance with the cylinder firing sequence, is captured by the entire set of state variables. The controller dynamics are also modeled as a periodic system, thus lending hand to the implementation of a feed-back structure with one single loop only. The second step of mapping the recovered imbalances to the individual engine cylinders can be difficult because un-modeled process dynamics and delays give rise to a phase shift in the measurement signal which is difficult to assess in advance, and which also varies with the engine operating point. In the case of the non-periodic representation, the phase shift is manifested as an offset between the N observer state variables and the corresponding cylinders. In other words, the phase offset is represented by an integer index having value (0, 1, . . . N-1) that relates each engine cylinder to a particular recovered imbalance number. This is illustrated in FIG. 1A for a four cylinder engine, where the observer state variables are identified as x.sub.1 -x.sub.4, and the offset has a value of two; for example, state variable x.sub.1 is related to cylinder number three, and state variable X.sub.3 is related to cylinder number one, etc. In the case of the periodic representation, the phase shift directly reflects the time delay between the original cylinder imbalance pattern and the recovered imbalance pattern captured in the sequence of the N observer state variables at each sampling instant. The time delay is expressed in terms of the number of sampling times and, therefore, is again characterized by an integer index having value (0, 1, . . . N-1). As illustrated in FIG. 1B, the mapping is realized by selecting that observer state variable as the input to the periodic controller, which is indicated by this number in terms of an offset with respect to first state variable. For example, by feeding-back the first state variable if the index is zero, by feeding-back the second state variable if it is one, etc.
To achieve stable individual cylinder control over an extended range of engine operating conditions, this index value can be determined for various engine operating points and stored in a look-up table, for example, as a function of engine speed and load. However, because the dynamic characteristics (i.e., the time constants and hence the phase shifts) of the engine may change over time, some of the data contained in the lookup table may become inappropriate. Therefore, it is important to monitor the operation of the control system and take corrective actions if necessary.